summaryrefslogtreecommitdiffstats
path: root/src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/ThemeHelper.kt
diff options
context:
space:
mode:
Diffstat (limited to 'src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/ThemeHelper.kt')
-rw-r--r--src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/ThemeHelper.kt22
1 files changed, 21 insertions, 1 deletions
diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/ThemeHelper.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/ThemeHelper.kt
index 481498f7b..72e2fb75e 100644
--- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/ThemeHelper.kt
+++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/ThemeHelper.kt
@@ -10,15 +10,27 @@ import androidx.annotation.ColorInt
import androidx.appcompat.app.AppCompatActivity
import androidx.core.content.ContextCompat
import androidx.core.view.WindowCompat
-import com.google.android.material.color.MaterialColors
+import androidx.preference.PreferenceManager
import org.yuzu.yuzu_emu.R
+import org.yuzu.yuzu_emu.YuzuApplication
+import org.yuzu.yuzu_emu.features.settings.model.Settings
+import org.yuzu.yuzu_emu.ui.main.ThemeProvider
import kotlin.math.roundToInt
object ThemeHelper {
const val SYSTEM_BAR_ALPHA = 0.9f
+ private const val DEFAULT = 0
+ private const val MATERIAL_YOU = 1
+
@JvmStatic
fun setTheme(activity: AppCompatActivity) {
+ val preferences = PreferenceManager.getDefaultSharedPreferences(YuzuApplication.appContext)
+ when (preferences.getInt(Settings.PREF_THEME, 0)) {
+ DEFAULT -> activity.setTheme(R.style.Theme_Yuzu_Main)
+ MATERIAL_YOU -> activity.setTheme(R.style.Theme_Yuzu_Main_MaterialYou)
+ }
+
val windowController = WindowCompat.getInsetsController(
activity.window,
activity.window.decorView
@@ -60,4 +72,12 @@ object ThemeHelper {
Color.green(color), Color.blue(color)
)
}
+
+ fun setCorrectTheme(activity: AppCompatActivity) {
+ val currentTheme = (activity as ThemeProvider).themeId
+ setTheme(activity)
+ if (currentTheme != (activity as ThemeProvider).themeId) {
+ activity.recreate()
+ }
+ }
}